package com.yuke.cloud.service.wmc.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.*;
import java.util.Date;

@ApiModel(value = "com.yuke.cloud.service.wmc.entity.AssGoodsReturn")
@Data
@Table(name = "ass_goods_return")
public class AssGoodsReturn {
    @Transient
    String specName;
    @Transient
    String shopName;
    @Transient
    String warehouseName;
    @Transient
    String userName;
    @Transient
    Byte payType;
    /**
     * 退货数量
     */
    @Column(name = "number")
    @ApiModelProperty(value = "退货数量")
    Integer number;

    /**
     * 主键，自增
     */
    @Id
    @Column(name = "goods_return_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @ApiModelProperty(value = "goodsReturnId主键，自增")
    private Long goodsReturnId;

    /**
     * 关联原单号
     */
    @Column(name = "order_id")
    @ApiModelProperty(value = "orderId关联原单号")
    private Long orderId;

    /**
     * 订单号，唯一
     */
    @Column(name = "order_sn")
    @ApiModelProperty(value = "orderSn订单号，唯一")
    private String orderSn;

    /**
     * 要退货的商品ID
     */
    @Column(name = "order_goods_id")
    @ApiModelProperty(value = "orderGoodsId要退货的商品ID")
    private Long orderGoodsId;

    /**
     * 订单类型， 0：未知；1：消费者向店铺下单；2：店铺向平台仓库下单
     */
    @Column(name = "order_type")
    @ApiModelProperty(value = "orderType订单类型， 0：未知；1：消费者向店铺下单；2：店铺向平台仓库下单")
    private Byte orderType;

    /**
     * 订单用户ID，与用户表关联
     */
    @Column(name = "user_id")
    @ApiModelProperty(value = "userId订单用户ID，与用户表关联")
    private Long userId;

    /**
     * 店铺ID
     */
    @Column(name = "shop_id")
    @ApiModelProperty(value = "shopId店铺ID")
    private Long shopId;

    /**
     * 应退金额，单位为分
     */
    @Column(name = "refund_payable")
    @ApiModelProperty(value = "refundPayable应退金额，单位为分")
    private Integer refundPayable;

    /**
     * 已退金额
     */
    @Column(name = "refund_paid")
    @ApiModelProperty(value = "refundPaid已退金额")
    private Integer refundPaid;

    /**
     * 退货状态， 0：未收货；1：确认/已收货；2：质检通过；3：质检不通过/退回完成；4：入库/退货完成。5：退货申请待确认；6：商户确认同意处理；7：商户确认并拒绝退货/退款
     */
    @Column(name = "return_status")
    @ApiModelProperty(value = "returnStatus退货状态， 0：未收货；1：确认/已收货；2：质检通过；3：质检不通过/退回完成；4：入库/退货完成。5：退货申请待确认；6：商户确认同意处理；7：商户确认并拒绝退货/退款")
    private Byte returnStatus;

    /**
     * 是否已完成退款， 0：未退款；1：已退款
     */
    @Column(name = "is_refund")
    @ApiModelProperty(value = "isRefund是否已完成退款， 0：未退款；1：已退款")
    private Boolean isRefund;

    /**
     * 退款方式，  1：原路退回；2：其他
     */
    @Column(name = "refund_type")
    @ApiModelProperty(value = "refundType退款方式，  1：原路退回；2：其他")
    private Byte refundType;

    /**
     * 退货原因，  0：其他，1：商品与描述不符，2：误购，3：质量问题，4：卖家发错货
     */
    @Column(name = "return_reason")
    @ApiModelProperty(value = "returnReason退货原因，  0：其他，1：商品与描述不符，2：误购，3：质量问题，4：卖家发错货")
    private Byte returnReason;

    /**
     * 自定义退货原因
     */
    @Column(name = "custom_return_reason")
    @ApiModelProperty(value = "customReturnReason自定义退货原因")
    private String customReturnReason;

    /**
     * 客户备注图片
     */
    @Column(name = "pic_url")
    @ApiModelProperty(value = "picUrl客户备注")
    private String picUrl;

    /**
     * 客户备注
     */
    @Column(name = "remark_user")
    @ApiModelProperty(value = "remarkUser客户备注")
    private String remarkUser;

    /**
     * 客服沟通的临时记录
     */
    @Column(name = "remark_system")
    @ApiModelProperty(value = "remarkSystem客服沟通的临时记录")
    private String remarkSystem;

    /**
     * 是否删除，0：未删除，1：已删除
     */
    @Column(name = "is_delete")
    @ApiModelProperty(value = "isDelete是否删除，0：未删除，1：已删除")
    private Boolean isDelete;

    /**
     * 退货申请时间
     */
    @Column(name = "create_time")
    @ApiModelProperty(value = "createTime退货申请时间")
    private Date createTime;

    /**
     * 处理人ID
     */
    @Column(name = "update_id")
    @ApiModelProperty(value = "updateId处理人ID")
    private Long updateId;

    /**
     * 修改时间
     */
    @Column(name = "update_time")
    @ApiModelProperty(value = "updateTime修改时间")
    private Date updateTime;


}
